package controller

import (
	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
	"my_chat/logic"
	"my_chat/model"
)

// @Summary 用户注册
// @Description 用户注册
// @Tags 用户操作类型接口
// @Accept application/json
// @Produce application/json
// @Param Authorization header string false "Bearer 用户令牌"
// @Param object body model.User false "用户"
// @Security ApiKeyAuth
// @Success 200 {object} _Response
// @Router /user/register [post]
func Register(c *gin.Context) {
	p := new(model.User)
	if err := c.ShouldBindJSON(p); err != nil {
		// 请求参数有误，直接返回响应
		// 使用global log 打印日志
		zap.L().Error("register error", zap.Error(err))
		RespFail(c, err.Error())
		return
	}

	data, err := logic.CreateUser(p)
	if err != nil {
		zap.L().Error("register error", zap.Error(err))
		RespFail(c, err.Error())
		return
	} else {
		RespOk(c, data)
	}
}

func Login(c *gin.Context) {
	p := new(model.UserLogin)
	if err := c.ShouldBindJSON(p); err != nil {
		// 请求参数有误，直接返回响应
		zap.L().Error("login error", zap.Error(err))
		RespFail(c, err.Error())
		return
	}

	data, err := logic.Login(p)
	if err != nil {
		zap.L().Error("login error", zap.Error(err))
		RespFail(c, err.Error())
		return
	} else {
		RespOk(c, data)
	}
}
